package cn.caishen.report.domain.report;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * 动态报表查询条件
 */
@TableName(value = "tb_report_where")
@Data
@ApiModel(value = "动态报表查询条件")
public class ReportWhere implements Serializable {

    /**
     * 报表条件编号
     */
    @TableId(value = "report_where_id", type = IdType.AUTO)
    @ApiModelProperty("报表条件编号")
    private Integer reportWhereId;

    /**
     * 报表设置编号
     */
    @TableField(value = "report_config_id")
    @ApiModelProperty("报表设置编号")
    private Integer reportConfigId;

    /**
     * 参数名称
     */
    @TableField(value = "param_name")
    @ApiModelProperty("参数名称")
    private String paramName;

    /**
     * 参数类型
     */
    @TableField(value = "param_type")
    @ApiModelProperty("参数类型")
    private String paramType;

    /**
     * 字段名称
     */
    @TableField(value = "field_name")
    @ApiModelProperty("字段名称")
    private String fieldName;

    /**
     * 字段中文名称
     */
    @TableField(value = "field_cn_name")
    @ApiModelProperty("字段中文名称")
    private String fieldCnName;

    /**
     * 比较值(1-等于,2-大于,3-大于等于,4-小于,5-小于等于)
     */
    @TableField(value = "compare")
    @ApiModelProperty("比较值(1-等于,2-大于,3-大于等于,4-小于,5-小于等于)  ")
    private Integer compare;

    /**
     * 默认值
     */
    @TableField(value = "default_value")
    @ApiModelProperty("默认值")
    private String defaultValue;

    /**
     * 日期类型(1-开始日期,2-结束日期)
     */
    @TableField(value = "date_type")
    @ApiModelProperty("日期类型(1-开始日期,2-结束日期)")
    private Integer dateType;

    /**
     * 表名称(参数类型为select时，查询表名称)
     */
    @TableField(value = "table_name")
    @ApiModelProperty("表名称(参数类型为select时，查询表名称)")
    private String tableName;

    /**
     * 关联字段(参数类型为select时，关联字段对应json)
     */
    @TableField(value = "link_json")
    @ApiModelProperty("关联字段(参数类型为select时，关联字段对应json)")
    private String linkJson;

    /**
     * 是否显示
     */
    @TableField(value = "on_show")
    @ApiModelProperty("是否显示")
    private Integer onShow;

    /**
     * 排序
     */
    @TableField(value = "order_by")
    @ApiModelProperty("排序")
    private Integer orderBy;
}
